package com.yjzx.util.service.aop.fileUpload;

import org.springframework.context.annotation.Import;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author yjzx
 * @date 2024/4/29
 * @description 文件上传校验注解
 */
@Import({
        FileUploadAspect.class
})
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface FileUpload {
    /**
     * 导入锁
     *
     * @return 默认有锁
     */
    boolean isLock() default true;

    /**
     * 允许导入最大数量
     *
     * @return 默认允许只导入一个
     */
    int numberOfFiles() default 1;

    /**
     * 文件大小限制
     *
     * @return 默认2M
     */
    int fileSize() default 0x200000;

    /**
     * 是否校验文件类型
     *
     * @return 默认excel类型
     */
    boolean isCheckFileType() default true;

    /**
     * 校验文件类型
     *
     * @return 默认excel类型
     */
    String[] fileType() default {
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
            , "application/vnd.ms-excel"};

    /**
     * 是否开启文件后缀校验
     *
     * @return 默认不开启
     */
    boolean isCheckFileSuffix() default false;

    /**
     * 文件后缀指定
     *
     * @return
     */
    String[] fileSuffix() default {".xlsx", ".xls"};

    /**
     * 类型错误返回异常消息
     *
     * @return
     */
    String typeErrorMsg() default "当前类型不允许上传";
}
